<?php

namespace App\Repositories\Ota\Tc\Policy\Service;

use App\Repositories\Policy\Eloquent\TcRepository;

class TcPolicyService extends TcRepository
{

    /**
     * 格式化上传政策数据
     * @param $param
     */
    public static function formatData($param, &$thisMessageBody)
    {
        $thisMessageBody->messageBody["messageBody"] = [];
        foreach ($param as $key => $value) {

            if (!empty($value['weekSegmentList'])) {
                foreach ($value['weekSegmentList'] as &$weekValue) {
                    $weekValue = intval($weekValue);
                }
            }
            if (!empty($value['saleWeekSegmentList'])) {
                foreach ($value['saleWeekSegmentList'] as &$saleWeekValue) {
                    $saleWeekValue = intval($saleWeekValue);
                }
            }
            // 资源适用场景
            $resourceApplySceneList = [];
            if (!empty($value['resourceApplySceneList'])) {
                $resourceApplySceneList = explode(',', $value['resourceApplySceneList']);
                foreach ($resourceApplySceneList as &$resourceApplySceneValue) {
                    $resourceApplySceneValue = intval($resourceApplySceneValue);
                }
            }

            $item = [

                "policyCode"                                => $value['policyCode'],   //类型：String  可有字段  备注：供应商自定义政策代码，只允许录入字母和数字且字符不得超过50个；底层存储，该字段有索引定义
                "policyCodeExtend"                          => !empty($value['policyCodeExtend']) ? $value['policyCodeExtend'] : '', //类型：String  可有字段  备注：政策代码扩展字段，字母和数字且字符不得超过50个，可赋值政策代码前缀；可用于归类定义一批政策，后续查询/删除接口使用；底层政策存储，该字段有索引定义，查询/删除使用性能更佳
                "isValid"                                   => $value['isValid'],         //类型：Number  可有字段  备注："政策有效,默认1 0-无效、1-有效 "
                "avEffectiveSaleValue"                      => intval($value['avEffectiveSaleValue']),//类型：Number  可有字段  备注：AV大于此值可售； 默认(字段不生效)；生效范围[1-9]，AV余位大于当前指定值才会进行售卖
                "isApplyShareFlight"                        => !empty($value['isApplyShareFlight']) ? intval($value['isApplyShareFlight']) : 0, //类型：Number  可有字段  备注："是否共享航班,默认0 0-否、1-是"
                "isAgentBooking"                            => !empty($value['isAgentBooking']) ? intval($value['isAgentBooking']) : 0, //类型：Number  可有字段  备注："是否代定位,默认0 0-否、1-是"
                "agentBookFailType"                         => !empty($value['agentBookFailType']) ? intval($value['agentBookFailType']) : 0,//类型：Number  可有字段  备注：代订位失败处理方式；默认(0-拦截下单)；枚举：0-拦截下单、1-收单；
                "seatLimit"                                 => !empty($value['seatLimit']) ? intval($value['seatLimit']) : 0,//类型：Number  可有字段  备注：AV余位阈值； 默认(字段不生效)；生效范围[1-9]，AV余位小于当前指定值才会代订位；
                "rebookSeatLimit"                           => !empty($value['rebookSeatLimit']) ? intval($value['rebookSeatLimit']) : 0,
                "reimbursementType"                         => isset($value['reimbursementType']) ? intval($value['reimbursementType']) : 1,//类型：Number  可有字段  备注：报销类型,默认1，共享航班出主承运必须为1 0-行程单、1-服务发票
                "officeNo"                                  => !empty($value['officeNo']) ? $value['officeNo'] : "" ,//类型：String  可有字段  备注："触发订位，需要使用的 office 号（字母+数字，6 位，比如 SZV122），字符长度 0~50，不支持特殊符号"
                "analyzeTicketOfficeNo"                     => !empty($value['analyzeTicketOfficeNo']) ? $value['analyzeTicketOfficeNo'] : '', //类型：String  可有字段  备注：客票解析，需要使用的 office 号（字母+数字，6 位，比如 SZV122）；字符长度 0~50，不支持特殊符号；
                "bigClientCode"                             => !empty($value['bigClientCode']) ? $value['bigClientCode'] : '', //类型：String  可有字段  备注："航司针对给指定代理人的特殊政策的三方协议代码，用于 PAT：A 获取特殊价格，格式（字母+数字，如 CXZJ10） ， 字符长度 0~50"
                "fareRule"                                  => !empty($value['fareRule']) ? $value['fareRule'] : '', //类型：String  可有字段  备注：针对N人起订、性别、年龄等特殊限制资源，同程自定义规则id，有此类资源需要投放请联系客户经理获取
                "resourceApplySceneList"                    => $resourceApplySceneList,//类型：Array  可有字段  备注：资源适用场景；List型，默认（空数组，表示常规场景适用）；枚举：4-联程场景、11-拼接假联程；
                "tripType"                                  => !empty($value['tripType']) ? intval($value['tripType']) : 1, //类型：Number  必有字段  备注："行程类型  数值型，1-单程、2-往返
                "airCompany"                                => $value['airCompany'],   //类型：String  必有字段  备注："航空公司二字代码  2 位大写字母  例：MU"
                "startPort"                                 => $value['startPort'],    //类型：String  必有字段  备注："出发机场三字代码  可录ALL  例：PEK"
                "endPort"                                   => $value['endPort'],      //类型：String  必有字段  备注："抵达机场三字代码  可录ALL  例：PEK"
                "cabinCodeList"                             => explode(',',$value['cabinCodeList']),  //类型：Array  必有字段  备注："适用的舱位代码 长度不超过 50 例：[""U"",""V"",""F""]"
                "particularCabinCode"                       => !empty($value["particularCabinCode"]) ? $value["particularCabinCode"] : '', //类型：String  可有字段  备注：指定舱位，占座时的舱位代码，不指定无需填写
                //"particularCabinCode"                       => "mock",        //类型：String  可有字段  备注：指定舱位，占座时的舱位代码，不指定无需填写
                "flightNoFit"                               => $value['flightNoFit'],   //类型：Number  可有字段  备注："航班限制类型  数值型  取值如下： 0=所有航班均适用 1=部分航班适用 2=部分航班不适用"
                "flightNoList"                              => !empty($value['flightNoList']) ? explode(',',$value['flightNoList']) : null,  //类型：Array  可有字段  备注：flightNoFit =0 时，FlightNoList 可以为空 List型，其余情况需传航班号 每个航班号必须6到7位由字母数字组成 航班号个数不超过100 例：["CA3463","CA5234","CA2343"]
                "weekSegmentList"                           => !empty($value['weekSegmentList']) ? $value['weekSegmentList'] : [1, 2, 3, 4, 5, 6, 7], //类型：Array  可有字段  备注：航班适用星期数；List型，不传默认[1,2,3,4,5,6,7] ；例：[1,3] 表示适用周一和周三；若周内的七天均适用，请 传入[1,2,3,4,5,6,7]；
                "startDate"                                 => $value["startDate"],      //类型：String  必有字段  备注：政策适用起飞开始时间，格式：yyyy-MM-dd
                "endDate"                                   => $value["endDate"],          //类型：String  必有字段  备注："政策适用起飞截止时间，格式：yyyy-MM-dd 政策适用起飞截止日期 不可小于政策适用起飞开始日期"
                'notFlightDate'                             => !empty($value['notFlightDate']) ? $value['notFlightDate'] : '',  //类型：String  可有字段  备注：不适用航班日期 ；格式：yyyy-MM-dd/yyyy-MM-dd,yyyy-MM-dd/yyyy-MM-dd，不适用日期最多支持6段
                'applyTimeRangeSegment'                     => !empty($value['applyTimeRangeSegment']) ? $value['applyTimeRangeSegment'] : '', //类型：String  可有字段  备注：起飞适用时间；格式：00:00-10:00,12:00-20:00
                //"startTakeoffApplyTime"                     => !empty($value['startTakeoffApplyTime']) ? $value['startTakeoffApplyTime'] : "00=>00",   //类型：String  可有字段  备注："开始起飞适用时间，格式：HH=>mm 限制航班起飞时间段"
                //"endTakeoffApplyTime"                       => !empty($value['endTakeoffApplyTime']) ? $value['endTakeoffApplyTime'] : "23=>59",//类型：String  可有字段  备注："结束起飞适用时间，格式：HH:mm 限制航班起飞时间段，当结束起飞适用时间<开始起飞适用时间，默认+1天，例 23:00-08:00 代表适用23:00-00:00 00:00-08:00时间段起飞航班"
                /*"backCabinCodeList" => [               //类型：Array  可有字段  备注：返程适用的舱位代码 长度不超过 50 例：[""U"",""V"",""F""]"
                ],
                "backParticularCabinCode" => "mock",     //类型：String  可有字段  备注：返程指定舱位，占座时的舱位代码，不指定无需填写
                "backFlightNoFit" => 0,                  //类型：Number  可有字段  备注："返程适用航班类型  数值型  取值如下： 0=所有航班均适用 1=部分航班适用 2=部分航班不适用"
                "backFlightNoList" => [                  //类型：Array  可有字段  备注："返程适用航班号，FlightLimit =0 时，FlightNo 可以为空  其余情况需传航班号 每个航班号必须6到7位由字母数字组成 航班号个数不超过100 例：[""CA3463"",""CA5234"",""CA2343""]"
                ],
                "backWeekSegmentList" => [               //类型：Array  可有字段  备注："返程适用班期，默认[1,2,3,4,5,6,7] 例： 1,3 表示适用周一和周三；若周内的七天均适用，请 传入[1,2,3,4,5,6,7]"
                ],
                "backStartDate" => "mock",               //类型：String  可有字段  备注：返程航班开始日期,格式：yyyy-MM-dd
                "backEndDate" => "mock",                 //类型：String  可有字段  备注："返程航班结束日期,格式：yyyy-MM-dd 政策适用起飞截止日期 不可小于政策适用起飞开始日期"
                "backStartTakeoffApplyTime" => "mock",      //类型：String  可有字段  备注："返程开始起飞适用时间，格式：HH:mm 限制航班起飞时间段"
                "backEndTakeoffApplyTime" => "mock",        //类型：String  可有字段  备注："返程结束起飞适用时间，格式：HH:mm 限制航班起飞时间段，当结束起飞适用时间<开始起飞适用时间，默认+1天，例 23:00-08:00 代表适用23:00-00:00 00:00-08:00时间段起飞航班"
                "shortestStayDay" => 0,                     //类型：Number  可有字段  备注：往返最短停留天数，大于等于0整数，航程类型为往返时生效
                "longestStayDay" => 0,*/                     //类型：Number  可有字段  备注：往返最长停留天数，大于等于0整数，航程类型为往返时生效
                "startSellDate"                             => !empty($value['startSellDate']) ? $value['startSellDate'] . " " . (!empty($value['startSaleApplyTime']) ? $value['startSaleApplyTime'] : '00:00') : "2024-09-16" . " 00:00",            //类型：String  必有字段  备注：销售起始日期，格式：yyyy-MM-dd
                "endSellDate"                               => !empty($value['endSellDate']) ? $value['endSellDate'] . " " . (!empty($value['endSaleApplyTime']) ? $value['endSaleApplyTime'] : '00:00') : $value["endDate"] . " 00:00",        //类型：String  必有字段  备注：销售结束日期，格式：yyyy-MM-dd
                "startSaleDay"                              => !empty($value['startSaleDay']) ? intval($value['startSaleDay']) : 365,  //类型：Number  可有字段  备注："N天内，默认365 0-365之间整数"
                "startSaleTime"                             => !empty($value['startSaleTime']) ? $value['startSaleTime'] : "00:00", //类型：String  可有字段  备注："N时刻开始销售，默认值“00:00” 格式：HH:mm 可输入值范围00:00-23:59"
                "endSaleDay"                                => !empty($value['endSaleDay']) ? intval($value['endSaleDay']) : 0, //类型：Number  可有字段  备注："N天外，默认0 0-365之间整数"
                "endSaleTime"                               => !empty($value['endSaleTime']) ? $value['endSaleTime'] : "00:00", //类型：String  可有字段  备注："N时刻停止销售，默认值“00:00” 格式：HH:mm 可输入值范围00:00-23:59"
                "startSaleApplyTime"                        => !empty($value['startSaleApplyTime']) ? $value['startSaleApplyTime'] : '', //类型：String  可有字段  备注：销售开始时间，默认值“00:00”
                "endSaleApplyTime"                          => !empty($value['endSaleApplyTime']) ? $value['endSaleApplyTime'] : '',     //类型：String  可有字段  备注："销售结束时间，默认值“00:00” 销售结束时间<销售起飞时间，默认+1天，例 23:00-08:00 代表适用23:00-00:00 00:00-08:00时间段起飞航班"
                "saleApplyTimeRangeSegment"                 => !empty($value['saleApplyTimeRangeSegment']) ? $value['saleApplyTimeRangeSegment'] : '', //类型：String  可有字段  备注：销售适用时间段；默认值""”, 格式：00:00-10:00,12:00-20:00
                // todo valuationType 为3时 valuationType值不合法, 不确定基准舱位的value值
                "valuationType"                             => intval($value['valuationType']),//类型：Number  必有字段  备注：计价类型：1-适用舱位、2-固定价格
                "farePriceType"                             => !empty($value['farePriceType']) ? $value['farePriceType'] : "",//类型：String  可有字段  备注：运价类型； 默认：空字符串 - 非指定运价； 枚举：空字符串 - 非指定运价、 "1"-公布运价、 "2"-私有运价 、"3"-直减运价、 "4"-中转运价、"5"-官网B2C运价,、"6"-往返RT运价、"7"-官网往返运价、"8"-官网联程运价、"9"-官网B2B运价、"10"-不可单售运价
                "sameCabinPriceType"                        => !empty($value['sameCabinPriceType']) ? intval($value['sameCabinPriceType']) : 0,//类型：Number  可有字段  备注：同舱多价取值, 默认0: 0:优先FD，1:优先NFD

                /*"backAddSubtractDiscount"                   => 0,                   //类型：Number  可有字段  备注："返程加减折扣，默认0.00 大于等于0数字，如10%，传10，录入系统后会自动除以100，精确到小数点后第二位 如valuationType为2，可不传"
                "backAddSubtractMoney"                        => 0,*/                      //类型：Number  可有字段  备注："返程加减金额，默认0 大于等于0数字，精确到小数点后第二位 如valuationType为2，可不传"
                "calculationLogic"                          => !empty($value['calculationLogic']) ? $value['calculationLogic'] : 3, //类型：Number  可有字段  备注：计价逻辑； 默认：3-四舍五入到十位； 枚举：1-逢一进十、2-进位到个位、3-四舍五入到十位、4-舍去个位、5-四舍五入到个位
                //"roundtripCalculationMode"                  => 0,                  //类型：Number  可有字段  备注："计价方式：0-先单程计价再求和、1-先求和再计价 针对往返程计价使用，单程可不传"
                'adultRebateSource'                         => !empty($value['adultRebateSource']) ? intval($value['adultRebateSource']) : 0.0,//类型：Number  可有字段  备注：成人返点来源； 默认：0-政策录入； 枚举：0-政策录入、1-官网接口；
                "adultRebatePercent"                        => !empty($value['adultRebatePercent']) ? floatval($value['adultRebatePercent']) : 0.0,//类型：Number  必有字段  备注：成人政策返点比例,只支持数字输入，如10%，传10，录入系统后会自动除以100，精确到小数点后第一位
                "adultRebateMoney"                          => !empty($value['adultRebateMoney']) ? floatval($value['adultRebateMoney']) : 0.00, //类型：Number  必有字段  备注：成人政策返点金额,只支持数字输入，精确到小数点后第二位
                "childRebatePercent"                        => !empty($value['childRebatePercent']) ? floatval($value['childRebatePercent']) : 0.0,//类型：Number  必有字段  备注：儿童政策返点比例,只支持数字输入，如10%，传10，录入系统后会自动除以100，精确到小数点后第一位
                "childRebateMoney"                          => !empty($value['childRebateMoney']) ? floatval($value['childRebateMoney']) : 0.00, //类型：Number  必有字段  备注：儿童政策返点金额,只支持数字输入，精确到小数点后第二位
                /*"backAdultRebateMoney" => 0,                  //类型：Number  可有字段  备注：返程成人政策返点比例,只支持数字输入，精确到小数点后第一位
                "backAdultRebatePercent" => 0,                  //类型：Number  可有字段  备注：返程成人政策返点金额,只支持数字输入，如10%，传10，录入系统后会自动除以100，精确到小数点后第二位
                "backChildRebateMoney" => 0,                    //类型：Number  可有字段  备注：返程儿童政策返点比例,只支持数字输入，精确到小数点后第一位
                "backChildRebatePercent" => 0,*/                //类型：Number  可有字段  备注：返程儿童政策返点金额,只支持数字输入，如10%，传10，录入系统后会自动除以100，精确到小数点后第二位
                "keepMoney"                                 => !empty($value['keepMoney']) ? floatval($value['keepMoney']) : 0.00,  //类型：Number  可有字段  备注："留钱，只支持数字输入，精确到小数点后第二位 默认值0.00"
                'keepMoneyPercent'                          => !empty($value['keepMoneyPercent']) ? floatval($value['keepMoneyPercent']) : 0,//类型：Number  可有字段  备注：竞价比例；仅支持大于等于0的两位小数； 如10%，传10，录入系统后会自动除以100，精确到小数点后第二位；
                "sellType"                                  => $value['sellType'],      //类型：Number  必有字段  备注：销售类型：1-AV有座销售、2-按库存销售
                "everydayInventory"                         => $value['everydayInventory'],  //类型：Number  必有字段  备注：总库存数：大于等于0整数
                "remark"                                    => !empty($value['remark']) ? $value['remark'] : '', //类型：String  可有字段  备注：备注：字母和数字且字符不得超过50个
                "isVerifyPrice"                             => !empty($value['isVerifyPrice']) ? intval($value['isVerifyPrice']) : 0, //类型：Number  可有字段  备注：是否验价 0.不验价 1.验价
                "floatPrice"                                => !empty($value['floatPrice']) ? intval($value['floatPrice']) : 0,       //类型：Number  可有字段  备注：上浮
                "sellPriceLowerLimit"                       => !empty($value['sellPriceLowerLimit']) ? floatval($value['sellPriceLowerLimit']) : 0,//类型：Number  可有字段  备注：卖价下限
                "sellPriceUpperLimit"                       => !empty($value['sellPriceUpperLimit']) ? floatval($value['sellPriceUpperLimit']) : 0, //类型：Number  可有字段  备注：卖价上限
                "verifyPriceOffice"                         => !empty($value['verifyPriceOffice']) ? $value['verifyPriceOffice'] : '',         //类型：String  可有字段  备注：验价office号
                "carryVerifyCabinPrice"                     => !empty($value['carryVerifyCabinPrice']) ? intval($value['carryVerifyCabinPrice']) : 0,//类型：Number  可有字段  备注：是否出主承运，只有共享航班可选是 默认0 0-否、1-是
                //"carryAirCompany" => "CA",             //类型：String  可有字段  备注：主承运航司，出主承运时必传，其他必须为空
                /*"backStartSaleDay" => 365,             //类型：Number  可有字段  备注：第2程开始销售天数
                "backEndSaleDay" => 0,*/                 //类型：Number  可有字段  备注：第2程提前销售天数
                "saleWeekSegmentList"                       => !empty($value['saleWeekSegmentList']) ? $value['saleWeekSegmentList'] : [1, 2, 3, 4, 5, 6, 7], //类型：Array  可有字段  备注：销售适用班期 默认=>[1,2,3,4,5,6,7]
                /*"longestTransferTime" => 2880,           //类型：Number  可有字段  备注：最长接驳时间（分钟） 联程政策推送时，必传；最大值必须小于等于2880
                "shortestTransferTime" => 60,            //类型：Number  可有字段  备注：最短接驳时间（分钟）； 联程政策推送时，必传； 最小值必须大于等于60
                "transitPortList" => [                   //类型：Array  可有字段  备注：中转机场；联程政策推送时，必传；其他类型政策，不需传；中转点接口推送只支持一个；如：["PEK"] 目前只支持传入一个中转机场
                ],*/
                "nfdType"                                   => !empty($value['nfdType']) ? intval($value['nfdType']) : 0, //类型：Number  可有字段  备注：适用舱NFD取值，非必传，只适用于单程，0-最高值，1-最低值， 默认值为0；
                "productType"                               => !empty($value['productType']) ? $value['productType'] : '',         //类型：String  可有字段  备注：特殊运价；可从ebook后台复制
                'resRuleType'                               => !empty($value['resRuleType']) ? intval($value['resRuleType']) : 1, //类型：Number  可有字段  备注：资源规则类型； 默认：1-平台定制； 枚举：1-平台定制、 2-代理自定义；
                'cabinName'                                 => !empty($value['cabinName']) ? $value['cabinName'] : "", //类型：String  可有字段  备注：舱位名称； 名称规范："经济舱"，"特殊经济舱"，"头等舱"，"商务舱"；
                'IsTeamTicket'                              => !empty($value['IsTeamTicket']) ? intval($value['IsTeamTicket']) : 0, //类型：Number  可有字段  备注：是否是团队票； 默认：0-否； 枚举：0-否、1-是；
            ];

            if ($item['valuationType'] == 1) {
                $item['actionType']                 = intval($value['actionType']);//类型：Number  可有字段  备注：动作：2-加、3-减 如valuationType为1 ，则actionType必传 如valuationType为2 ，则actionType不用传
                $item['addSubtractBaseType']        = intval($value['addSubtractBaseType']);//类型：Number  可有字段  备注："加减基准：2-适用舱位、3-基准舱位 如valuationType为1 ，则addSubtractBaseType必传 如valuationType为2 ，则addSubtractBaseType不用传"
                $item['addSubtractDiscount']        = !empty($value['addSubtractDiscount']) ? floatval($value['addSubtractDiscount']) : 0.00;//类型：Number  可有字段  备注："加减折扣，默认0.00 大于等于0数字，如10%，传10，录入系统后会自动除以100，精确到小数点后第二位 如valuationType为2，可不传"
                $item['addSubtractMoney']           = !empty($value['addSubtractMoney']) ? intval($value['addSubtractMoney']) : 0;//类型：Number  可有字段  备注：加减金额； 默认0； 大于等于0整数； 当“valuationType=2”，不传；

            } else if ($item['valuationType'] == 2) {
                $item['fixedTotalPrice']            = intval($value['fixedTotalPrice']);//类型：Number  可有字段  备注："单程：固定价格，往返：固定总价，大于0整数 如valuationType为2 ，则fixedTotalPrice必传 如valuationType为1 ，则fixedTotalPrice不用传"
            }
            if ($item['resRuleType'] == 2) {
                $item['resCardType']                =  !empty($value['resCardType']) ? $value['resCardType'] : ''; //类型：String  可有字段  备注：资源对证件限制； 默认空； 当“resRuleType=2”时，才可以填（具体值请参考后台页面）；
                $item['resAgeType']                 =  !empty($value['resAgeType']) ? $value['resAgeType'] : ''; //类型：String  可有字段  备注：资源对年龄限制； 默认空； 当“resRuleType=2”时，才可以填（具体值请参考后台页面）；
                $item['resNumberType']              =  !empty($value['resNumberType']) ? $value['resNumberType'] : ''; //类型：String  可有字段  备注：资源对人数限制； 默认空； 当“resRuleType=2”时，才可以填（具体值请参考后台页面）；
            }
            $thisMessageBody->messageBody["messageBody"][]     = $item;

        }

//        dd($item);
        $thisMessageBody->messageBody["messageBody"] = base64_encode(gzencode(json_encode($thisMessageBody->messageBody["messageBody"])));

    }

    /**
     * 格式化更新政策数据
     * @param $param
     * @return array
     */
    public static function formatUpdateData($param)
    {
        $policyList = [];
        if (count($param, 1) == count($param)) {

            $param = [$param];
        }
        foreach ($param as $key => $value) {

            foreach ($value['weekSegmentList'] as &$weekValue){
                $weekValue = intval($weekValue);
            }
            foreach ($value['saleWeekSegmentList'] as &$saleWeekValue){
                $saleWeekValue = intval($saleWeekValue);
            }

            $item = [

                "policyId" => $value['policyId'],
//                "policyCode" => $value['policyCode'], //类型：String  可有字段  备注：政策代码； 与policyId二者只能使用其一
                "valuationType" => intval($value['valuationType']),//类型：Number  必有字段  备注：计价类型：1-适用舱位、2-固定价格
                "adultRebatePercent" => !empty($value['adultRebatePercent']) ? floatval($value['adultRebatePercent']) : 0.0,//类型：Number  必有字段  备注：成人政策返点比例,只支持数字输入，如10%，传10，录入系统后会自动除以100，精确到小数点后第一位
                "adultRebateMoney" => !empty($value['adultRebateMoney']) ? floatval($value['adultRebateMoney']) : 0.00, //类型：Number  必有字段  备注：成人政策返点金额,只支持数字输入，精确到小数点后第二位
                "childRebatePercent" => !empty($value['childRebatePercent']) ? floatval($value['childRebatePercent']) : 0.0,//类型：Number  必有字段  备注：儿童政策返点比例,只支持数字输入，如10%，传10，录入系统后会自动除以100，精确到小数点后第一位
                "childRebateMoney" => !empty($value['childRebateMoney']) ? floatval($value['childRebateMoney']) : 0.00, //类型：Number  必有字段  备注：儿童政策返点金额,只支持数字输入，精确到小数点后第二位
                "calculationLogic" => !empty($value['calculationLogic']) ? $value['calculationLogic'] : 3, //类型：Number  可有字段  备注：计价逻辑； 可不传，不传默认不修改； 枚举：1-逢一进十、2-进位到个位、3-四舍五入到十位、4-舍去个位、5-四舍五入到个位
                "keepMoney" => !empty($value['keepMoney']) ? floatval($value['keepMoney']) : 0.00,  //类型：Number  可有字段  备注："留钱，只支持数字输入，精确到小数点后第二位 默认值0.00"
                'keepMoneyPercent' => !empty($value['keepMoneyPercent']) ? floatval($value['keepMoneyPercent']) : 0,//类型：Number  可有字段  备注：竞价比例；仅支持大于等于0的两位小数； 如10%，传10，录入系统后会自动除以100，精确到小数点后第二位；
                "isVerifyPrice" => intval($value['isVerifyPrice']), //类型：Number  可有字段  备注：是否验价 0.不验价 1.验价
                "floatPrice" => !empty($value['floatPrice']) ? intval($value['floatPrice']) : 0, //类型：Number  可有字段  备注：上浮金额； 可不传，不传默认不修改； 仅支持正整数；
                "verifyPriceOffice" => $value['verifyPriceOffice'],//类型：String  可有字段  备注：验价office号； 可不传，不传默认不修改； 用于验价的Office号，大写，最多支持15个字符；
                "nfdType" => intval($value['nfdType']),  //类型：Number  可有字段  备注：运价取值； 可不传，不传默认不修改； 枚举：0-最高值 、1-最低值；
                "farePriceType" => !empty($value['farePriceType']) ? $value['farePriceType'] : "",//类型：String  可有字段  备注：运价类型； 默认：空字符串 - 非指定运价； 枚举：空字符串 - 非指定运价、 "1"-公布运价、 "2"-私有运价 、"3"-直减运价、 "4"-中转运价、"5"-官网B2C运价,、"6"-往返RT运价、"7"-官网往返运价、"8"-官网联程运价、"9"-官网B2B运价、"10"-不可单售运价
                'adultRebateSource' => intval($value['adultRebateSource']),//类型：Number  可有字段  备注：成人返点来源； 默认：0-政策录入； 枚举：0-政策录入、1-官网接口；
            ];

            if ($item['valuationType'] == 1) {
                $item['actionType'] = intval($value['actionType']);//类型：Number  可有字段  备注：动作：2-加、3-减 如valuationType为1 ，则actionType必传 如valuationType为2 ，则actionType不用传
                $item['addSubtractBaseType'] = intval($value['addSubtractBaseType']);//类型：Number  可有字段  备注："加减基准：2-适用舱位、3-基准舱位 如valuationType为1 ，则addSubtractBaseType必传 如valuationType为2 ，则addSubtractBaseType不用传"
                $item['addSubtractDiscount'] = !empty($value['addSubtractDiscount']) ? floatval($value['addSubtractDiscount']) : 0.00;//类型：Number  可有字段  备注："加减折扣，默认0.00 大于等于0数字，如10%，传10，录入系统后会自动除以100，精确到小数点后第二位 如valuationType为2，可不传"
                $item['addSubtractMoney'] = !empty($value['addSubtractMoney']) ? intval($value['addSubtractMoney']) : 0;//类型：Number  可有字段  备注：加减金额； 默认0； 大于等于0整数； 当“valuationType=2”，不传；

            } else if ($item['valuationType'] == 2) {
                $item['fixedTotalPrice'] = intval($value['fixedTotalPrice']);//类型：Number  可有字段  备注："单程：固定价格，往返：固定总价，大于0整数 如valuationType为2 ，则fixedTotalPrice必传 如valuationType为1 ，则fixedTotalPrice不用传"
            }

//            dd($item);
            $policyList[] = $item;

        }
        return $policyList;
    }

}